/**
 * React Router v6.5.0
 *
 * Copyright (c) Remix Software Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE.md file in the root directory of this source tree.
 *
 * @license MIT
 */
import{invariant as e,joinPaths as t,matchPath as r,UNSAFE_getPathContributingMatches as n,resolveTo as a,parsePath as o,matchRoutes as i,Action as l,isRouteErrorResponse as s,createMemoryHistory as u,stripBasename as c,AbortedDeferredError as d,createRouter as p}from"@remix-run/router";export{AbortedDeferredError,Action as NavigationType,createPath,defer,generatePath,isRouteErrorResponse,json,matchPath,matchRoutes,parsePath,redirect,resolvePath}from"@remix-run/router";import*as h from"react";const m="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},{useState:f,useEffect:v,useLayoutEffect:g,useDebugValue:E}=h;function x(e){const t=e.getSnapshot,r=e.value;try{const e=t();return!m(r,e)}catch(n){return!0}}const y=!!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement)?function(e,t,r){return t()}:function(e,t,r){const n=t(),[{inst:a},o]=f({inst:{value:n,getSnapshot:t}});return g((()=>{a.value=n,a.getSnapshot=t,x(a)&&o({inst:a})}),[e,n,t]),v((()=>{x(a)&&o({inst:a});return e((()=>{x(a)&&o({inst:a})}))}),[e]),E(n),n},C="useSyncExternalStore"in h?h.useSyncExternalStore:y,b=h.createContext(null),R=h.createContext(null),S=h.createContext(null),P=h.createContext(null),D=h.createContext(null),U=h.createContext(null),_=h.createContext({outlet:null,matches:[]}),w=h.createContext(null);function O(r,{relative:n}={}){N()||e(!1);let{basename:a,navigator:o}=h.useContext(D),{hash:i,pathname:l,search:s}=I(r,{relative:n}),u=l;return"/"!==a&&(u="/"===l?a:t([a,l])),o.createHref({pathname:u,search:s,hash:i})}function N(){return null!=h.useContext(U)}function j(){return N()||e(!1),h.useContext(U).location}function L(){return h.useContext(U).navigationType}function A(t){N()||e(!1);let{pathname:n}=j();return h.useMemo((()=>r(t,n)),[n,t])}function F(){N()||e(!1);let{basename:r,navigator:o}=h.useContext(D),{matches:i}=h.useContext(_),{pathname:l}=j(),s=JSON.stringify(n(i).map((e=>e.pathnameBase))),u=h.useRef(!1);return h.useEffect((()=>{u.current=!0})),h.useCallback(((e,n={})=>{if(!u.current)return;if("number"==typeof e)return void o.go(e);let i=a(e,JSON.parse(s),l,"path"===n.relative);"/"!==r&&(i.pathname="/"===i.pathname?r:t([r,i.pathname])),(n.replace?o.replace:o.push)(i,n.state,n)}),[r,o,s,l])}const k=h.createContext(null);function B(){return h.useContext(k)}function M(e){let t=h.useContext(_).outlet;return t?h.createElement(k.Provider,{value:e},t):t}function T(){let{matches:e}=h.useContext(_),t=e[e.length-1];return t?t.params:{}}function I(e,{relative:t}={}){let{matches:r}=h.useContext(_),{pathname:o}=j(),i=JSON.stringify(n(r).map((e=>e.pathnameBase)));return h.useMemo((()=>a(e,JSON.parse(i),o,"path"===t)),[e,i,o,t])}function J(r,n){N()||e(!1);let{navigator:a}=h.useContext(D),s=h.useContext(S),{matches:u}=h.useContext(_),c=u[u.length-1],d=c?c.params:{};!c||c.pathname;let p=c?c.pathnameBase:"/";c&&c.route;let m,f=j();if(n){let t="string"==typeof n?o(n):n;"/"===p||t.pathname?.startsWith(p)||e(!1),m=t}else m=f;let v=m.pathname||"/",g="/"===p?v:v.slice(p.length)||"/",E=i(r,{pathname:g}),x=$(E&&E.map((e=>Object.assign({},e,{params:Object.assign({},d,e.params),pathname:t([p,a.encodeLocation?a.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?p:t([p,a.encodeLocation?a.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])}))),u,s||void 0);return n&&x?h.createElement(U.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...m},navigationType:l.Pop}},x):x}function H(){let e=re(),t=s(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,n="rgba(200,200,200, 0.5)",a={padding:"0.5rem",backgroundColor:n},o={padding:"2px 4px",backgroundColor:n};return h.createElement(h.Fragment,null,h.createElement("h2",null,"Unhandled Thrown Error!"),h.createElement("h3",{style:{fontStyle:"italic"}},t),r?h.createElement("pre",{style:a},r):null,h.createElement("p",null,"💿 Hey developer 👋"),h.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",h.createElement("code",{style:o},"errorElement")," props on ",h.createElement("code",{style:o},"<Route>")))}class z extends h.Component{constructor(e){super(e),this.state={location:e.location,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location?{error:e.error,location:e.location}:{error:e.error||t.error,location:t.location}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return this.state.error?h.createElement(w.Provider,{value:this.state.error,children:this.props.component}):this.props.children}}function V({routeContext:e,match:t,children:r}){let n=h.useContext(b);return n&&t.route.errorElement&&(n._deepestRenderedBoundaryId=t.route.id),h.createElement(_.Provider,{value:e},r)}function $(t,r=[],n){if(null==t){if(!n?.errors)return null;t=n.matches}let a=t,o=n?.errors;if(null!=o){let t=a.findIndex((e=>e.route.id&&o?.[e.route.id]));t>=0||e(!1),a=a.slice(0,Math.min(a.length,t+1))}return a.reduceRight(((e,t,i)=>{let l=t.route.id?o?.[t.route.id]:null,s=n?t.route.errorElement||h.createElement(H,null):null,u=()=>h.createElement(V,{match:t,routeContext:{outlet:e,matches:r.concat(a.slice(0,i+1))}},l?s:void 0!==t.route.element?t.route.element:e);return n&&(t.route.errorElement||0===i)?h.createElement(z,{location:n.location,component:s,error:l,children:u()}):u()}),null)}var W,X,Y;function q(t){let r=h.useContext(S);return r||e(!1),r}function G(){return q(X.UseNavigation).navigation}function K(){let t=function(t){let r=h.useContext(R);return r||e(!1),r}(W.UseRevalidator),r=q(X.UseRevalidator);return{revalidate:t.router.revalidate,state:r.revalidation}}function Q(){let{matches:e,loaderData:t}=q(X.UseMatches);return h.useMemo((()=>e.map((e=>{let{pathname:r,params:n}=e;return{id:e.route.id,pathname:r,params:n,data:t[e.route.id],handle:e.route.handle}}))),[e,t])}function Z(){let t=q(X.UseLoaderData),r=h.useContext(_);r||e(!1);let n=r.matches[r.matches.length-1];return n.route.id||e(!1),t.loaderData[n.route.id]}function ee(e){return q(X.UseRouteLoaderData).loaderData[e]}function te(){let t=q(X.UseActionData);return h.useContext(_)||e(!1),Object.values(t?.actionData||{})[0]}function re(){let t=h.useContext(w),r=q(X.UseRouteError),n=h.useContext(_),a=n.matches[n.matches.length-1];return t||(n||e(!1),a.route.id||e(!1),r.errors?.[a.route.id])}function ne(){return h.useContext(P)?._data}function ae(){return h.useContext(P)?._error}function oe({fallbackElement:e,router:t}){let r=C(t.subscribe,(()=>t.state),(()=>t.state)),n=h.useMemo((()=>({createHref:t.createHref,encodeLocation:t.encodeLocation,go:e=>t.navigate(e),push:(e,r,n)=>t.navigate(e,{state:r,preventScrollReset:n?.preventScrollReset}),replace:(e,r,n)=>t.navigate(e,{replace:!0,state:r,preventScrollReset:n?.preventScrollReset})})),[t]),a=t.basename||"/";return h.createElement(R.Provider,{value:{router:t,navigator:n,static:!1,basename:a}},h.createElement(S.Provider,{value:r},h.createElement(ce,{basename:t.basename,location:t.state.location,navigationType:t.state.historyAction,navigator:n},t.state.initialized?h.createElement(de,null):e)))}function ie({basename:e,children:t,initialEntries:r,initialIndex:n}){let a=h.useRef();null==a.current&&(a.current=u({initialEntries:r,initialIndex:n,v5Compat:!0}));let o=a.current,[i,l]=h.useState({action:o.action,location:o.location});return h.useLayoutEffect((()=>o.listen(l)),[o]),h.createElement(ce,{basename:e,children:t,location:i.location,navigationType:i.action,navigator:o})}function le({to:t,replace:r,state:n,relative:a}){N()||e(!1);let o=h.useContext(S),i=F();return h.useEffect((()=>{o&&"idle"!==o.navigation.state||i(t,{replace:r,state:n,relative:a})})),null}function se(e){return M(e.context)}function ue(t){e(!1)}function ce({basename:t="/",children:r=null,location:n,navigationType:a=l.Pop,navigator:i,static:s=!1}){N()&&e(!1);let u=t.replace(/^\/*/,"/"),d=h.useMemo((()=>({basename:u,navigator:i,static:s})),[u,i,s]);"string"==typeof n&&(n=o(n));let{pathname:p="/",search:m="",hash:f="",state:v=null,key:g="default"}=n,E=h.useMemo((()=>{let e=c(p,u);return null==e?null:{pathname:e,search:m,hash:f,state:v,key:g}}),[u,p,m,f,v,g]);return null==E?null:h.createElement(D.Provider,{value:d},h.createElement(U.Provider,{children:r,value:{location:E,navigationType:a}}))}function de({children:e,location:t}){let r=h.useContext(R);return J(r&&!e?r.router.routes:ve(e),t)}function pe({children:e,errorElement:t,resolve:r}){return h.createElement(me,{resolve:r,errorElement:t},h.createElement(fe,null,e))}!function(e){e.UseRevalidator="useRevalidator"}(W||(W={})),function(e){e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator"}(X||(X={})),function(e){e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error"}(Y||(Y={}));const he=new Promise((()=>{}));class me extends h.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error("<Await> caught the following error during render",e,t)}render(){let{children:e,errorElement:t,resolve:r}=this.props,n=null,a=Y.pending;if(r instanceof Promise)if(this.state.error){a=Y.error;let e=this.state.error;n=Promise.reject().catch((()=>{})),Object.defineProperty(n,"_tracked",{get:()=>!0}),Object.defineProperty(n,"_error",{get:()=>e})}else r._tracked?(n=r,a=void 0!==n._error?Y.error:void 0!==n._data?Y.success:Y.pending):(a=Y.pending,Object.defineProperty(r,"_tracked",{get:()=>!0}),n=r.then((e=>Object.defineProperty(r,"_data",{get:()=>e})),(e=>Object.defineProperty(r,"_error",{get:()=>e}))));else a=Y.success,n=Promise.resolve(),Object.defineProperty(n,"_tracked",{get:()=>!0}),Object.defineProperty(n,"_data",{get:()=>r});if(a===Y.error&&n._error instanceof d)throw he;if(a===Y.error&&!t)throw n._error;if(a===Y.error)return h.createElement(P.Provider,{value:n,children:t});if(a===Y.success)return h.createElement(P.Provider,{value:n,children:e});throw n}}function fe({children:e}){let t=ne();return"function"==typeof e?e(t):h.createElement(h.Fragment,null,e)}function ve(t,r=[]){let n=[];return h.Children.forEach(t,((t,a)=>{if(!h.isValidElement(t))return;if(t.type===h.Fragment)return void n.push.apply(n,ve(t.props.children,r));t.type!==ue&&e(!1),t.props.index&&t.props.children&&e(!1);let o=[...r,a],i={id:t.props.id||o.join("-"),caseSensitive:t.props.caseSensitive,element:t.props.element,index:t.props.index,path:t.props.path,loader:t.props.loader,action:t.props.action,errorElement:t.props.errorElement,hasErrorBoundary:null!=t.props.errorElement,shouldRevalidate:t.props.shouldRevalidate,handle:t.props.handle};t.props.children&&(i.children=ve(t.props.children,o)),n.push(i)})),n}function ge(e){return $(e)}function Ee(e){return e.map((e=>{let t={...e};return null==t.hasErrorBoundary&&(t.hasErrorBoundary=null!=t.errorElement),t.children&&(t.children=Ee(t.children)),t}))}function xe(e,t){return p({basename:t?.basename,history:u({initialEntries:t?.initialEntries,initialIndex:t?.initialIndex}),hydrationData:t?.hydrationData,routes:Ee(e)}).initialize()}export{pe as Await,ie as MemoryRouter,le as Navigate,se as Outlet,ue as Route,ce as Router,oe as RouterProvider,de as Routes,R as UNSAFE_DataRouterContext,S as UNSAFE_DataRouterStateContext,b as UNSAFE_DataStaticRouterContext,U as UNSAFE_LocationContext,D as UNSAFE_NavigationContext,_ as UNSAFE_RouteContext,Ee as UNSAFE_enhanceManualRouteObjects,xe as createMemoryRouter,ve as createRoutesFromChildren,ve as createRoutesFromElements,ge as renderMatches,te as useActionData,ae as useAsyncError,ne as useAsyncValue,O as useHref,N as useInRouterContext,Z as useLoaderData,j as useLocation,A as useMatch,Q as useMatches,F as useNavigate,G as useNavigation,L as useNavigationType,M as useOutlet,B as useOutletContext,T as useParams,I as useResolvedPath,K as useRevalidator,re as useRouteError,ee as useRouteLoaderData,J as useRoutes};
//# sourceMappingURL=react-router.production.min.js.map
